package leetcode;

/**
 * description:
 * author:zt
 * date:2021-10-18
 */
//给你一个 正 整数 num ，输出它的补数。补数是对该数的二进制表示取反。
public class leetcode476 {
    public int findComplement(int num) {
        int s = -1;
        for (int i = 31; i >= 0; i--) {
            if (((num >> i) & 1) != 0) {
                s = i;
                break;
            }
        }
        int res = 0;
        for(int i = 0;i < s;i ++){
            int n = num >> i;
            if ((1&n) == 0){
                res += Math.pow(2,i);
            }
        }
        return res;
    }
}
